/******************************************************************************************
 * Import
 ******************************************************************************************/

// module
import Taro from '@tarojs/taro';

// assets
import '../../../project/style/toast/error.png';
import '../../../project/style/toast/fail.png';
import '../../../project/style/toast/forbid.png';
import '../../../project/style/toast/info.png';
import '../../../project/style/toast/success.png';
import '../../../project/style/toast/warn.png';

/******************************************************************************************
 * Export Class
 ******************************************************************************************/

export default class Toast {

	/**
	 * 只有文字的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static text(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有成功图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static success(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: '/project/style/toast/success.png',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有警告图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static warn(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: '/project/style/toast/warn.png',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有错误图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static error(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: '/project/style/toast/error.png',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有失败图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static fail(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: '/project/style/toast/fail.png',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有禁止图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static forbid(text, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: '/project/style/toast/forbid.png',
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 带有自定义图标的吐司反馈
	 * 
	 * @param {String} text 消息内容
	 * @param {String} icon 图片路径
	 * @param {Int} duration 持续毫秒数，默认1500
	 * @param {Boolean} mask 是否启用遮罩层，防止触摸穿透，默认false
	 */
	static custome(text, icon, duration = 1500, mask = false) {
		Taro.showToast({
			title: text,
			icon: 'none',
			image: icon,
			duration: duration,
			mask: mask
		});
	}

	/**
	 * 隐藏Toast
	 */
	static hide() {
		Taro.hideToast();
	}
}
